// 版权归 Epic Games, Inc. 所有，保留所有权利。

#pragma once

#include "Containers/Ticker.h"
#include "GameUIManagerSubsystem.h"

#include "LyraUIManagerSubsystem.generated.h"

class FSubsystemCollectionBase;
class UObject;

UCLASS()
class ULyraUIManagerSubsystem : public UGameUIManagerSubsystem
{
	GENERATED_BODY()

public:
	/**
	 * 构造函数
	 */
	ULyraUIManagerSubsystem();

	/**
	 * 初始化子系统
	 * @param Collection 子系统集合基类引用
	 */
	virtual void Initialize(FSubsystemCollectionBase& Collection) override;

	/**
	 * 反初始化子系统
	 */
	virtual void Deinitialize() override;

private:
	/**
	 * 每帧调用的Tick函数
	 * @param DeltaTime 帧间隔时间
	 * @return 总是返回true以持续接收Tick
	 */
	bool Tick(float DeltaTime);

	/**
	 * 同步根布局的可见性到HUD的显示状态
	 */
	void SyncRootLayoutVisibilityToShowHUD();
	
	FTSTicker::FDelegateHandle TickHandle; // Tick委托句柄，用于管理Tick函数的注册与取消
};